package com.legendshop.openportal.sdk.model.request;


import com.legendshop.openportal.sdk.annotation.EnumValid;
import com.legendshop.openportal.sdk.model.PageRequest;
import com.legendshop.openportal.sdk.model.constants.OrderSnTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

import static com.legendshop.openportal.sdk.model.constants.ApiPathConstants.ORDER_PAGE;

/**
 * 查询订单列表
 *
 */
@Data
@ApiModel("查询订单列表")
public class OrderPageRequest extends PageRequest {

	/**
	 * 订单号
	 */
	@ApiModelProperty(value = "订单号")
	private String subNumber;

	/**
	 * 订单类型, 根据不同的类型来表示不同的订单，参见 OrderSnTypeEnum
	 */
	@ApiModelProperty(value = "订单类型")
	@EnumValid(target = OrderSnTypeEnum.class, message = "订单类型不匹配", ignoreEmpty = true)
	private String orderSnType;

	/**
	 * 开始时间-用于查询某段时间范围产生的订单
	 */
	@ApiModelProperty(value = "开始时间")
	private Date startDate;

	/**
	 * 结束时间-用于查询某段时间范围产生的订单
	 */
	@ApiModelProperty(value = "结束时间")
	private Date endDate;

	/**
	 * 用于订单搜索收件人手机
	 */
	@ApiModelProperty(value = "用于订单搜索收件人手机")
	private String mobile;

	/**
	 * 用于订单搜索收件人名称
	 */
	@ApiModelProperty(value = "用于订单搜索收件人名称")
	private String receiver;

	/**
	 * 用于订单搜索商品名称
	 */
	@ApiModelProperty(value = "用于订单搜索商品名称")
	private String prodName;


	@Override
	@ApiModelProperty(hidden = true)
	public String getApiPath() {
		return ORDER_PAGE;
	}

}
